package com.huluobo.kotlindemoim1911a2.ui.activity

import android.os.Handler
import com.huluobo.kotlindemoim1911a2.R
import com.huluobo.kotlindemoim1911a2.base.BaseActivity
import com.huluobo.kotlindemoim1911a2.contract.splash.SplashContract
import com.huluobo.kotlindemoim1911a2.contract.splash.SplashPresenter
import org.jetbrains.anko.startActivity

/**
 * Created by lc on 2022/10/17.
 * 1.如果当前用户登陆过,则跳转到主页面
 * 2.如果没有用户登陆过,则展示2秒闪屏页,然后跳转到登录页面
 */
class SplashActivity : BaseActivity(), SplashContract.View {
    private val presenter = SplashPresenter(this)

    override fun init() {
        super.init()
        presenter.checkLoginStatus()
    }

    override fun getLayoutId(): Int = R.layout.activity_splash

    //伴生函数,相当于Java中的静态代码块,但是他的生命周期跟随当前的类
    //const 代表常驻的意思,在内存中会节省内存,因为这个变量不变
    companion object {
        const val DELAY = 2000L //常量
    }

    //实现懒加载,相当于new了一个Handler,并且添加一个懒汉的单例模式
    //当需要使用到这个变量的时候,他才会进行new或者加载,不使用时,是不会加载的,相应的节省一部分内存
    private val handler by lazy {
        Handler()
    }

    override fun onNotLoggedIn() {
        handler.postDelayed({
            startActivity<LoginActivity>()
            finish()
        }, DELAY)
    }

    override fun onLoggedIn() {
        startActivity<MainActivity>()
        finish()
    }
}